<%@ page import="java.sql.*" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/11/5
  Time: 15:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
    <head>
        <title>登录检查</title>
    </head>
    <body>
        <%//Java代码
            request.setCharacterEncoding("utf-8");//实现编码为utf8，不会出现乱码
            //response.setCharacterEncoding("utf-8");

            //内置对象获取前端表单提交的数据

            //request.getParameter获取前端input标签中定义name的属性value值
            /*String sno = request.getParameter("name");
            String password = request.getParameter("password");
            out.write(sno+password);*/

            /**
             * 使用JavaBean获取前端表单提交的数据
             * 1.jsp:useBean动作标签
             *
             * 注意的地方：当前端定义的name字段和JavaBean属性不一样的时候，需要映射 property="sclass" param="password"
             *
             */
        %>

        <%--单个赋值--%>
        <jsp:useBean id="stu" class="com.edu.oracl.pojo.Student" >

          <%--  <jsp:setProperty name="stu" property="sno" param="name"></jsp:setProperty>
            <jsp:setProperty name="stu" property="sclass" param="password"></jsp:setProperty>&lt;%&ndash;使用sclass属性来做密码登录&ndash;%&gt;
--%>
            <%--property="sno" param="name"字段不一样，不可以这样使用--%>
            <jsp:setProperty name="stu" property="*"></jsp:setProperty>

        </jsp:useBean>



        <%
            System.out.println(stu.getSno()+stu.getSclass());
            //加一个判断语句IF语句判断， sno和sclass不为空就执行jdbc
            //1.jdbc  加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");

            //2. oracle创建连接对象
            String url = "jdbc:oracle:thin:@//localhost:1521/orcl";
            String user = "scott";//用户名：system,scott,hr
            String pass ="oracle";//自己用户密码

            Connection conn = DriverManager.getConnection(url,user,pass);

            //3.sql操作对象:PreparedStatement
            String sql="select * from student where sno=? and sclass=?";
            PreparedStatement pstm = conn.prepareStatement(sql);//连接对象执行操作对象 赋值 给操作对象变量pstm
            //不安全Statement， sql注入，不是数据库内容也可以登录
            pstm.setString(1,stu.getSno());
            pstm.setString(2,stu.getSclass());
            ResultSet rs = pstm.executeQuery();//执行查询后，把结果赋值给结果集rs变量

            //4.处理结果集
            if(rs.next()){
                //重定向到index.html页面中
                System.out.println("登录成功");
                response.sendRedirect("index.jsp");
            }else {
                System.out.println("登录失败");
                response.sendRedirect("login.html");
            }

            //5.关闭资源
            if(rs!=null){
                System.out.println("创建结果集关闭成功！");
                rs.close();
            }
            if(pstm!=null){
                System.out.println("创建对象关闭成功！");
                pstm.close();
            }

            if(conn!=null){
                System.out.println("连接数据库成功！");
                conn.close();
            }
        %>
        
    </body>
</html>
